-- *****************************************************************
-- CISCO-BUS-MIB.my: LANE BUS MIB file
--
-- July 1995, Chris Young
--
-- Copyright (c) 1995-1997 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
 CISCO-BUS-MIB DEFINITIONS ::= BEGIN

 IMPORTS
        ciscoMgmt                       FROM CISCO-SMI
        AtmLaneAddress                  FROM LAN-EMULATION-CLIENT-MIB
        MODULE-IDENTITY, OBJECT-TYPE,   
        Counter32, Integer32            FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
        TEXTUAL-CONVENTION,
        RowStatus, DisplayString, 
        TimeStamp                       FROM SNMPv2-TC;

 ciscoBusMIB    MODULE-IDENTITY
        LAST-UPDATED "9509151702Z"
        ORGANIZATION "Cisco Systems Inc."
        CONTACT-INFO
                " Cisco Systems Inc."
        DESCRIPTION
                " The MIB module for the management of LANE broadcast and 
                unknown servers."
        ::= { ciscoMgmt 40 }

 ciscoBusMIBObjects OBJECT IDENTIFIER ::= { ciscoBusMIB 1 }

 CiscoVpiInteger ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                " An integer large enough to hold a VPI.  In the event
                that VC does not  exist, the value  of an  object with
                this syntax shall be -1."
        SYNTAX  INTEGER (-1..255)

 CiscoVciInteger ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                " An integer large enough to hold a VCI.  In the event
                that  VC does not exist, the   value on an object with
                this syntax shall be -1."
        SYNTAX  INTEGER (-1..65535)

 busTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF BusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A (conceptual) table representing all the instantiations
                of BUSs on the designated device.  This table may or may not
                allow the creation of rows depending on whether the LANE
                service elements allow the separate creation of LES and BUS
                components.  In the event that separate components are not
                allowed then the MINIMUM-ACCESS detailed in the 
                MODULE-COMPLIANCE should be used by those BUS implementations"
        ::= { ciscoBusMIBObjects 1 }

 busEntry OBJECT-TYPE
        SYNTAX     BusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " An entry (conceptual row) in the busTable."
        INDEX      { busElanName, busIndex }
        ::= { busTable 1 }

 BusEntry ::= SEQUENCE {
        busElanName              DisplayString,
        busIndex                 INTEGER,
        busAtmAddrSpec           AtmLaneAddress,
        busAtmAddrMask           OCTET STRING,
        busAtmAddrActl           AtmLaneAddress,
        busIfIndex               Integer32,
        busSubIfNum              Integer32,
        busUpTime                TimeStamp,
        busLanType               INTEGER,
        busMaxFrm                INTEGER,
        busMaxFrmAge             INTEGER,
        busOutFwdOctets          Counter32,
        busOutFwdUcastFrms       Counter32,
        busOutFwdNUcastFrms      Counter32,
        busFrmTimeOuts           Counter32,
        busMultiFwdVpi           CiscoVpiInteger,
        busMultiFwdVci           CiscoVciInteger,
        busOperStatus            INTEGER,
        busAdminStatus           INTEGER,
        busStatus                RowStatus
 }

 busElanName OBJECT-TYPE
        SYNTAX     DisplayString (SIZE (1..32))
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " The ELAN name of the designated bridge."
        ::= { busEntry 1 }

 busIndex OBJECT-TYPE
        SYNTAX     INTEGER (1..2147483647)
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A unique identifier  for this particular BUS on this
                ELAN. This value must remain  constant while the entry
                is in existence and during the  operation of the agent
                (i.e.   It is allowed to change  after  reboot).  For 
                implementations that do not support  more than one BUS
                entity per ELAN per device, it is sufficient to always
                report 1 for this object and  only to accept the value
                1 for row creation."
        ::= { busEntry 2 }

 busAtmAddrSpec OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The specified ATM address of the BUS on the interface
                of interest.  Note  that setting this object will have
                the side effect   of   reinitializing  the  BUS    and
                consequently dropping all clients connected to it.  If
                this object is not specified at row creation time then
                the BUS will choose a value  for itself and attempt to
                register  with the  switch  with  that  value.  If  an
                address is  specified  which is not acceptable  to the
                switch   then the busOperStatus  will remain  inactive
                until an acceptable address is set."
        ::= { busEntry 3 }

 busAtmAddrMask OBJECT-TYPE
        SYNTAX     OCTET STRING (SIZE (0 | 20))
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "   An    address mask  that     when  used  with  the
                busAtmAddrSpec, specifies  the portion of the BUS' ATM
                address  that is desired  to be  configured. Note that
                setting    this     object   will   result   in    the
                reinitialization of the BUS, consequently dropping all
                clients connected to  it.   At row creation  time this
                object  cannot be set  without also  supplying a value
                for  the busAtmAddrSpec.  If   the BUS ATM  address is
                omitted at creation time then this object defaults to
                the  value of all  zeros  (none of the  busAtmAddrSpec
                value   is  relevant).  If the    BUS  ATM address  is
                specified  at creation time   but this object omitted,
                then this object  defaults  to the  value of all  ones
                (all of the busAtmAddrSpec is relevant)." 
        ::= { busEntry 4 }

 busAtmAddrActl OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The  resultant ATM address in use  by the BUS.  This
                object is a product of the specified ATM address, mask
                and interaction with the switch via the ILMI."
        ::= { busEntry 5 }

 busIfIndex OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "  The interface that a BUS will forward traffic over.
                The value specified for this object must equate to a
                value of ifIndex in the ifTable.  The interface  will
                be for that particular ATM port (the physical
                interface, not a logical layer on top of it). This
                object can only be specified upon row creation and
                cannot be altered there after." 
        ::= { busEntry 6 }

 busSubIfNum OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " Specifies   the  sub-interface number that  the  BUS
                will reside on.  This sub-interface may be shared with
                a LEC or BUS of the same ELAN  but is not required to
                do  so.  If no value  is  specified for this object at
                row creation time, then a sub-interface will be chosen
                by  the agent. This   object may only be  specified at
                row creation time and cannot be altered thereafter."  
        ::= { busEntry 7 }

 busUpTime OBJECT-TYPE
        SYNTAX     TimeStamp
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The  value    of sysUpTime  when  this  BUS   became
                enabled." 
        ::= { busEntry 8 }

 busLanType OBJECT-TYPE
        SYNTAX     INTEGER { dot3(1), dot5(2) }
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The type of legacy LAN that this LES emulates."
        DEFVAL { dot3 }
        ::= { busEntry 9 }

 busMaxFrm OBJECT-TYPE
        SYNTAX     INTEGER { dot3    (1516), 
                             tr4Mb   (4544), 
                             rfc1626 (9234),
                             tr16Mb  (18190) }
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "  The maximum  frame size  that  the emulated LAN may
                accept." 
        DEFVAL { dot3 }
        ::= { busEntry 10 }

 busMaxFrmAge OBJECT-TYPE
        SYNTAX     INTEGER (1..4)
        UNITS      "seconds"
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The maximum number of seconds a BUS will hold onto a
                packet for forwarding until it is dropped.  Dropping a
                packet  will   result  in  the   incrementing   of the
                busFrmTimeOuts counter." 
        DEFVAL { 1 } 
        ::= { busEntry 11 }

 busOutFwdOctets OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "  The number of  octets that  this  BUS has forwarded
                since its initialization."
        ::= { busEntry 12 }

 busOutFwdUcastFrms OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number  of  frames that  the BUS  has  forwarded
                which were  unicast data frames  including all control
                frames (i.e. they were flooded from the client)." 
        ::= { busEntry 13 }

 busOutFwdNUcastFrms OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "  The number of  frames  that  the BUS has  forwarded
                which were multicast frames."
        ::= { busEntry 14 } 

 busFrmTimeOuts OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The number of frames dropped by  the BUS due to time
                out." 
        ::= { busEntry 15 }

 busMultiFwdVpi OBJECT-TYPE
        SYNTAX     CiscoVpiInteger
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The   virtual  path  identifier for    the multicast
                forward VCC. " 
        ::= { busEntry 16 }

 busMultiFwdVci OBJECT-TYPE
        SYNTAX     CiscoVciInteger
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "   The virtual channel   identifier for the multicast
                forward VCC."
        ::= { busEntry 17 }

 busOperStatus OBJECT-TYPE
        SYNTAX     INTEGER { active(1), inactive(2) } 
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "  This object  reflects the actual   state of the BUS
                which may  differ  from  that  of  the  busAdminStatus
                object.    This  can   occur     when  the   interface
                ifOperStatus is  'down'     but    the   corresponding
                busAdminStatus is 'active'." 
        ::= { busEntry 18 } 

 busAdminStatus OBJECT-TYPE
        SYNTAX     INTEGER { active(1), inactive(2) }
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "    The desired   state  of  the   designated BUS  as
                prescribed by the operator.  The  actions of the agent
                will,  if at  all possible,  eventually  result in the
                desired state being  reflected in  the busOperStatus."
        DEFVAL     { active } 
        ::= { busEntry 19 }

 busStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                " The status of the BUS  entry.  This object cannot be
                set  to active until   the  busIfIndex object  has  an
                appropiate  value.   Note  that implementations   that
                do    not  support  separate     LES/BUS entities  may
                refuse row  creation in  this table.    Creation  of
                BUS entities  for those implementation  is facilitated
                in the LES MIB."  
        ::= { busEntry 20 }

 busClientTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF BusClientEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A (conceptual) table listing the clients associated
                with a BUS.  Note that the local or network management
                will not create or destroy rows in this table but
                may only inspect what LECs are currently joined
                with the BUS."
        ::= { ciscoBusMIBObjects 2 }

 busClientEntry OBJECT-TYPE
        SYNTAX     BusClientEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " An entry (conceptual) row that denotes a client that
                is establishing/has established a multicast send VC to
                the BUS."
        INDEX      { busElanName, busIndex, busClientId }
        ::= { busClientTable 1 }

 BusClientEntry ::= SEQUENCE {
        busClientId           Integer32,
        busClientIfIndex      Integer32,
        busClientMSendVpi     CiscoVpiInteger,
        busClientMSendVci     CiscoVciInteger,
        busClientAtmAddress   AtmLaneAddress
 }
 
 busClientId OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                " A unique identifier for a LEC which is establishing/
                has-established a multicast send VC to the BUS.  The
                identifier only persists for as long as the LEC is
                associated with this particular BUS.  If the LEC is
                dropped and rejoins the ELAN then a new identifier may
                be attributed to it."
        ::= { busClientEntry 1 }

 busClientIfIndex OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The interface of the uni-directional multicast send
                connection between the LEC and BUS."
        ::= { busClientEntry 2 }

 busClientMSendVpi OBJECT-TYPE
        SYNTAX     CiscoVpiInteger
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The VPI of the uni-directional multicast send
                connection between the LEC and BUS."
        ::= { busClientEntry 3 }

 busClientMSendVci OBJECT-TYPE
        SYNTAX     CiscoVciInteger 
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The VCI of the uni-directional multicast send
                connection between the LEC and BUS."
        ::= { busClientEntry 4 }

 busClientAtmAddress OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The address associated with the LANE client on the 
                mulicast send VCC."
        ::= { busClientEntry 5 }

ciscoBusMIBConformance OBJECT IDENTIFIER ::= { ciscoBusMIB 2 }  

ciscoBusMIBGroups OBJECT IDENTIFIER ::= { ciscoBusMIBConformance 1 }

ciscoBusMIBCompliances OBJECT IDENTIFIER ::= { ciscoBusMIBConformance 2 }

ciscoBusGroup OBJECT-GROUP
        OBJECTS   { busAtmAddrSpec, busAtmAddrMask, busAtmAddrActl,
                    busIfIndex, busUpTime, busLanType, busMaxFrm,
                    busMaxFrmAge, busOutFwdOctets, busOutFwdUcastFrms,
                    busOutFwdNUcastFrms, busFrmTimeOuts,
                    busMultiFwdVpi, busMultiFwdVci, busOperStatus,
                    busAdminStatus, busStatus }  
        STATUS    current
        DESCRIPTION
                " A collection of objects for the managing of BUS operation."
        ::= { ciscoBusMIBGroups 1 }

ciscoBusSubIfGroup OBJECT-GROUP
        OBJECTS   { busSubIfNum } 
        STATUS    current
        DESCRIPTION
                " For those implementations that wish to tie their LE service
                components to an aflane_802x ifIndex."
        ::= { ciscoBusMIBGroups 2 }

ciscoBusClientGroup OBJECT-GROUP
        OBJECTS   { busClientIfIndex, busClientMSendVpi,
                    busClientMSendVci, busClientAtmAddress }
        STATUS    current
        DESCRIPTION
                " A collection of objects for the identification of a
                BUS's multicast send VCs."
        ::= { ciscoBusMIBGroups 3 }

ciscoBusMIBCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION 
                " The compliance statement for SNMP entities that support
                Cisco's BUS MIB."
        MODULE -- this module
                MANDATORY-GROUPS    { ciscoBusGroup } 
                
                GROUP        ciscoBusSubIfGroup
                DESCRIPTION
                        " The group of objects necessary to allow multiple LANE
                        components to share a common ifIndex."
                
                OBJECT       busAtmAddrSpec
                MIN-ACCESS   read-only
                DESCRIPTION  
                        "Those implementations that do not support separately
                        configured broadcast/unknown and LAN emulation servers
                        are not required to provide write access to the
                        busAtmAddrSpec object."

                OBJECT       busAtmAddrMask
                MIN-ACCESS   read-only
                DESCRIPTION  
                        "Those implementations that do not support separately
                        configured broadcast/unknown and LAN emulation servers
                        are not required to provide write access to the
                        busAtmAddrMask object."

                OBJECT       busIfIndex
                MIN-ACCESS   read-only
                DESCRIPTION
                        "Those implementations that do not support separately
                        configured broadcast/unknown and LAN emulation servers
                        are not required to provide write access to the
                        busIfIndex object."

                OBJECT       busSubIfNum
                MIN-ACCESS   read-only
                DESCRIPTION
                        " Those implementations that do not support separately
                        configured broadcast/unknown and LAN emulation servers 
                        are not required to provide write access to the 
                        busSubIfNum object."

                OBJECT      busLanType
                MIN-ACCESS  read-only
                DESCRIPTION
                        " Those implementations that do not support separately
                        configured broadcast/unknown and LAN emulation servers 
                        are not required to provide write access to the 
                        busLanType object."

                OBJECT      busMaxFrm
                MIN-ACCESS  read-only
                DESCRIPTION
                        " Those implementations that do not support separately
                        configured broadcast/unknown and LAN emulation servers 
                        are not required to provide write access to the 
                        busMaxFrm object."

                OBJECT      busAdminStatus
                MIN-ACCESS  read-only
                DESCRIPTION
                        " Those implementations that do not support separately
                        configured broadcast/unknown and LAN emulation servers 
                        are not required to provide write access to the 
                        busAdminStatus object.  The BUS's administrative status
                        should be controlled via access to the lesAdminStatus.
                        Refer to CISCO-LES-MIB for details."

        ::= { ciscoBusMIBCompliances 1 }

END